package io.github.yangyouwang.crud.app.service;
import com.alibaba.druid.util.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import io.github.yangyouwang.crud.app.entity.Device;
import io.github.yangyouwang.crud.app.entity.Site;
import io.github.yangyouwang.crud.app.mapper.SiteMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * 站点表 服务实现类
 * </p>
 */
@Service
public class SiteService extends ServiceImpl<SiteMapper, Site> {
    @Resource
    private SiteMapper siteMapper;
    /**
     * 站点表分页列表
     * @param param 参数
     * @return 结果
     */
    public List<Site> page(Site param) {
        QueryWrapper<Site> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda()
                //原为第一个like，其他是eq
                //线路编号
                .eq(!StringUtils.isEmpty(param.getLineNo()), Site::getLineNo, param.getLineNo())
                //线路名称
                .eq(!StringUtils.isEmpty(param.getLineName()), Site::getLineName, param.getLineName())
                //站点名称
                .eq(!StringUtils.isEmpty(param.getStationName()), Site::getStationName, param.getStationName())
                //位置
                .eq(!StringUtils.isEmpty(param.getLocation()), Site::getLocation, param.getLocation());
        return siteMapper.getInfoList(queryWrapper);
    }

    public List<Site> page2(Site param) {
        QueryWrapper<Site> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda()
                //线路名称
                .eq(!StringUtils.isEmpty(param.getLineName()), Site::getLineName, param.getLineName())
                //站点名称
                .eq(!StringUtils.isEmpty(param.getStationName()), Site::getStationName, param.getStationName())
                //位置
                .eq(!StringUtils.isEmpty(param.getLocation()), Site::getLocation, param.getLocation());
        return siteMapper.getInfoList2(queryWrapper);
    }

    /**
     * 查看详情
     *
     * @param id 主键
     * @return 结果
     */
    public Map info(Long id) {
        //原为返回默认mapper方法byid改为自定义byid了
        return siteMapper.getInfoById(id);
    }


    public Map info2(Long id) {
        return siteMapper.getInfoById2(id);
    }
    /**
     * 站点表新增
     *
     * @param param 根据需要进行传值
     */
    public void add(Map param) {
        siteMapper.getInsert(param);
        //save(param);
    }

    public void ImportAdd(Site param) {
        save(param);
    }

    /**
     * 站点表修改
     *
     * @param param 根据需要进行传值
     */
    public void modify(Map param) {
        siteMapper.getUpdateById(param);
        //updateById(param);
    }

    /**
     * 站点表删除(单个条目)
     *
     * @param id 主键
     */
    public void remove(Long id) {
        removeById(id);
    }

    /**
     * 站点表删除(多个条目)
     *
     * @param ids 主键数组
     */
    public void removes(List<Long> ids) {
        removeByIds(ids);
    }

    public List selectShow() {
        List selectShow = siteMapper.getSelectShow();
        return selectShow;
    }

    public List selectShow2(Map param) {
        return siteMapper.getSelectShow2(param);
    }

    public List selectShow3(Map param) {
        return siteMapper.getSelectShow3(param);
    }

    public List<Site> getTable(Map param) {
        return siteMapper.getTable(param);
    }

    public List getTable2(Device param) {
        return siteMapper.getTable2(param);
    }

    public List getTable3(Map param) {
        return siteMapper.getTable3(param);
    }
}
